package br.com.gtoolz.myimc.db;

import java.util.ArrayList;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.CursorIndexOutOfBoundsException;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.widget.Toast;
import br.com.gtoolz.myimc.R;
import br.com.gtoolz.myimc.modelo.ResultadoCals;

public class CalsDAO {
	
	private SQLiteDatabase db = null;
	private DBHelper dbHelper = null;
	private static final String TAG = "Dao";
	private Context context;

	public CalsDAO(Context context) {
		dbHelper = new DBHelper(context);
		this.context = context;
	}
	
	public void salvar(ResultadoCals elemento) throws SQLException {
		this.db = dbHelper.getWritableDatabase();
		ContentValues values = new ContentValues();
		values.put("data", elemento.getData());
		values.put("tmb", elemento.getTmb());
		values.put("qna", elemento.getQna());
		values.put("qcp", elemento.getQcp());
		values.put("qcg", elemento.getQcg());
		values.put("descricao", elemento.getDescricao());
		
		this.db.insert("cals", null, values);
		this.db.close();
		Log.i(TAG, "Registro criado com sucesso!");

	}
	
	public void alterar(ResultadoCals resultado) {
		
		this.db = dbHelper.getWritableDatabase();
		ContentValues values = new ContentValues();

		values.put("data", resultado.getData());
		values.put("descricao", resultado.getDescricao());
		
		String[] args = {resultado.getId().toString()};
		this.db.update("cals", values, "id=?", args);
		this.db.close();
		
	}
	
	public ArrayList<ResultadoCals> getLista() {
		String[] colunas = {"id", "data", "tmb", "qna", "qcp", "qcg", "descricao"};
		ResultadoCals resultado = new ResultadoCals();
		this.db = dbHelper.getWritableDatabase();
		
		Cursor cursor = this.db.query("cals", colunas, null, null, null, null, null);
		
		cursor.moveToFirst();
		
		ArrayList<ResultadoCals> resultados = new ArrayList<ResultadoCals>();
		
		try {
			do {
				
				resultado = new ResultadoCals();
				
				resultado.setId(cursor.getLong(0));
				resultado.setData(cursor.getString(1));
				resultado.setTmb(cursor.getString(2));
				resultado.setQna(cursor.getString(3));
				resultado.setQcp(cursor.getString(4));
				resultado.setQcg(cursor.getString(5));
				resultado.setDescricao(cursor.getString(6));
				
				resultados.add(resultado);
			
			} while (cursor.moveToNext());
			
		} catch (CursorIndexOutOfBoundsException e) {
			Toast.makeText(context, R.string.err_resultados_cadastrados, Toast.LENGTH_SHORT).show();
		} finally {
			cursor.close();
			this.db.close();
		}
		
		return resultados;
		
	}
	
	public void excluir(ResultadoCals resultado) {
		
		this.db = dbHelper.getWritableDatabase();
		Long id = resultado.getId();
		String stringId = id.toString();
		String[] args = {stringId};
		this.db.delete("cals", "id=?", args);
		this.db.close();
		
	}
	
}
